<?php
namespace App\Http\Services;

/**
 * Class AwsS3FilServer
 * @package App\Http\Services
 */
use AWS;
class AwsS3FilServer
{

    /**
     * aws s3 ファイルサーバーでアプロード
     * @param $fileServerPath
     * @param $filePath
     * @return bool
     */
    public function s3pubFile ($fileServerPath, $filePath) {
        $serverKbn = config('businessVolume.SERVER_KBN');
        if ($serverKbn === '1') {
            $fileServerPath = 'dev'.$fileServerPath;
        } else if ($serverKbn === '2') {
            $fileServerPath = 'stg'.$fileServerPath;
        } else if ($serverKbn === '3') {
            $fileServerPath = 'pro'.$fileServerPath;
        }
        try {
            $s3 = AWS::createClient('s3');
            $s3->putObject(array(
                'Bucket'     => 'ecd-stg-s3-001',
                'Key'        => $fileServerPath,
                'SourceFile' => $filePath,
            ));
            return true;
        } catch (\Exception $exception) {
            return false;
        }
    }

    /**
     * aws s3 ファイルサーバーからダウンロード
     * @param $fileServerPath
     * @return \Exception|string
     */
    public function s3getFile ($fileServerPath) {
        $serverKbn = config('businessVolume.SERVER_KBN');
        if ($serverKbn === '1') {
            $fileServerPath = 'dev'.$fileServerPath;
        } else if ($serverKbn === '2') {
            $fileServerPath = 'stg'.$fileServerPath;
        } else if ($serverKbn === '3') {
            $fileServerPath = 'pro'.$fileServerPath;
        }
        try {
            $s3 = AWS::createClient('s3');
            $result = $s3->getObject(array(
                'Bucket' => 'ecd-stg-s3-001',
                'Key'    => $fileServerPath,
            ));
            $buf = base64_encode($result['Body']);
            return $buf;
        } catch (\Exception $exception) {
            return false;
        }
    }

    /**
     * aws s3 ファイルサーバーからダウンロード
     * @param $fileServerPath
     * @return \Exception|string
     */
    public function s3getFileTem ($fileServerPath) {
        $fileServerPath = 'ContractTemplate/'.$fileServerPath.'.pdf';
//        return $fileServerPath;
        try {
            $s3 = AWS::createClient('s3');
            $result = $s3->getObject(array(
                'Bucket' => 'ecd-stg-s3-001',
                'Key'    => $fileServerPath,
            ));
            $buf = base64_encode($result['Body']);
            return $buf;
        } catch (\Exception $exception) {
            return false;
        }
    }

    /**
     * aws s3 mail ファイルサーバーからダウンロード
     * @param $fileServerPath
     * @return \Exception|string
     */
    public function s3getFileMail ($fileServerPath) {
        $serverKbn = config('businessVolume.SERVER_KBN');
        if ($serverKbn === '1') {
            $fileServerPath = 'dev'.$fileServerPath;
        } else if ($serverKbn === '2') {
            $fileServerPath = 'stg'.$fileServerPath;
        } else if ($serverKbn === '3') {
            $fileServerPath = 'pro'.$fileServerPath;
        }
        try {
            $s3 = AWS::createClient('s3');
            $result = $s3->getObject(array(
                'Bucket' => 'ecd-stg-s3-001',
                'Key'    => $fileServerPath,
            ));
            $buf = $result['Body'];
            return $buf;
        } catch (\Exception $exception) {
            return false;
        }
    }

    /**
     * aws s3 mail ファイルサーバーからダウンロード
     * @param $fileServerPath
     * @return \Exception|string
     */
    public function s3getFileURL ($fileServerPath) {
        $serverKbn = config('businessVolume.SERVER_KBN');
        if ($serverKbn === '1') {
            $fileServerPath = 'dev'.$fileServerPath;
        } else if ($serverKbn === '2') {
            $fileServerPath = 'stg'.$fileServerPath;
        } else if ($serverKbn === '3') {
            $fileServerPath = 'pro'.$fileServerPath;
        }
//        echo $fileServerPath;
        try {
            $s3 = AWS::createClient('s3');
            $result = $s3->getObject(array(
                'Bucket' => 'ecd-stg-s3-001',
                'Key'    => $fileServerPath,
            ));
            echo $result['@metadata'];
            $buf = $result['Body'];
            return $buf;
        } catch (\Exception $exception) {
            return false;
        }
    }
    /**
     * aws s3 ファイルサーバーからダウンロード
     * @param $fileServerPath
     * @return \Exception|string
     */
    // 20191007 合意締結証明書の取得 邓 Start
    public function s3getFilebatch ($fileServerPath) {
        $serverKbn = config('businessVolume.SERVER_KBN');
        if ($serverKbn === '1') {
            $fileServerPath = 'dev'.$fileServerPath;
        } else if ($serverKbn === '2') {
            $fileServerPath = 'stg'.$fileServerPath;
        } else if ($serverKbn === '3') {
            $fileServerPath = 'pro'.$fileServerPath;
        }
        try {
            $s3 = AWS::createClient('s3');
            $result = $s3->getObject(array(
                'Bucket' => 'ecd-stg-s3-001',
                'Key'    => $fileServerPath,
            ));
            $buf = $result['Body'];
            return $buf;
        } catch (\Exception $exception) {
            return false;
        }
    }
    // 20191007 合意締結証明書の取得 邓 end
}